﻿using AutoMapper;
using KC.Framework.Base;
using KC.Model.Storage.Base;
using KC.Model.Storage.Table;
using KC.Service.Storage.DTO;

namespace KC.Service.Storage.AutoMapper.Profile
{
    public class StorageMapperProfile : global::AutoMapper.Profile
    {
        public StorageMapperProfile()
        {
            CreateMap<Entity, StorageEntityDTO>();
            CreateMap<StorageEntityDTO, Entity>();

            CreateMap<AzureTableEntity, AzureTableEntityDTO>()
                .IncludeBase<Entity, StorageEntityDTO>();
            CreateMap<AzureTableEntityDTO, AzureTableEntity>()
                .IncludeBase<StorageEntityDTO, Entity>();

            CreateMap<NLogEntity, NLogEntityDTO>()
                .IncludeBase<AzureTableEntity, AzureTableEntityDTO>();
            CreateMap<NLogEntityDTO, NLogEntity>()
                .IncludeBase<AzureTableEntityDTO, AzureTableEntity>();

            CreateMap<QueueErrorMessage, QueueErrorMessageDTO>()
                .IncludeBase<AzureTableEntity, AzureTableEntityDTO>();
            CreateMap<QueueErrorMessageDTO, QueueErrorMessage>()
                .IncludeBase<AzureTableEntityDTO, AzureTableEntity>();
        }
    }
}
